package main

import (
	"fmt"
)

/**
recover
	1.仅在defer调用中使用
	2.获取panic的值
	3.如果无法处理，可重新panic
 */

func tryRecover()  {
	defer func() {
		r := recover()
		if err, ok := r.(error); ok {
			fmt.Println("error ", err)
		} else {
			panic(r)
		}
	}()
	//panic(errors.New("this is error"))
	b := 0
	a := 4 / b
	fmt.Println(a)
}

func main() {
	tryRecover()
}
